﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using rent_car.Manejadores;

namespace rent_car.Gui
{
    public partial class FormNuevoPais : Form
    {
        public FormNuevoPais()
        {
            InitializeComponent();
            manejadorDePaises = ManejadorDePaises.getInstancia();
            cargarGvPaises();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (!txtPais.Text.Equals(""))
            {
                if (!validado)
                {
                    agregarPais();
                    cargarGvPaises();
                    limpiarCampo();
                    MessageBox.Show(null, "País agregado con éxitos", "Información", MessageBoxButtons.OK);

                }
                else
                {
                    modificarPais();
                    cargarGvPaises();
                    limpiarCampo();
                    validado = false;
                    MessageBox.Show(null, "País modificado con éxitos", "Información", MessageBoxButtons.OK);
                }
            }
            else
            {
                MessageBox.Show(null, "Introduzca el nombre del país", "Alerta", MessageBoxButtons.OK);
            }
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            if(!txtPais.Text.Equals(""))
            {
                modificarPais();
                cargarGvPaises();
                MessageBox.Show(null, "País modificado con éxitos", "Información", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show(null, "Debe seleccionar el país a modificar \n o dar doble click sobre el país", "Alerta", MessageBoxButtons.OK);
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (gvPaises.SelectedRows.Count != 0)
            {
                eliminarPais();
                cargarGvPaises();
                MessageBox.Show(null, "País eliminado con éxitos", "Información", MessageBoxButtons.OK);
            }
        }

        private void gvPaises_DoubleClick(object sender, EventArgs e)
        {
            cargarDatos();
        }

        private void cargarGvPaises()
        {
            gvPaises.DataSource = null;
            gvPaises.DataSource = manejadorDePaises.getObject();
        }

        private void cargarDatos()
        {
            if (gvPaises.SelectedRows.Count != 0)
            {
                validado = true;
                paise pais = (paise)gvPaises.CurrentRow.DataBoundItem;
                txtPais.Text = pais.nombre;
            }
        }

        private void agregarPais()
        {
            paise nuevoPais = new paise();
            nuevoPais.nombre = txtPais.Text;
            manejadorDePaises.agregar(nuevoPais);
        }

        private void modificarPais()
        {
            paise paisModificado = (paise) gvPaises.CurrentRow.DataBoundItem;
            paisModificado.nombre = txtPais.Text;
            manejadorDePaises.modificar(paisModificado);
        }

        private void eliminarPais()
        {
            paise paisEliminado = (paise)gvPaises.CurrentRow.DataBoundItem;
            manejadorDePaises.eliminar(paisEliminado.pais_id);
        }

        private void limpiarCampo()
        {
            txtPais.Text = "";
        }

        private ManejadorDePaises manejadorDePaises = null;
        private bool validado = false;
    }
}
